import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:{{project_name.snakeCase()}}/features/{{feature_name.snakeCase()}}/domain/entities/{{feature_name.snakeCase()}}_entity.dart';

part '{{feature_name.snakeCase()}}_state.freezed.dart';

@freezed
sealed class {{feature_name.pascalCase()}}State with _${{feature_name.pascalCase()}}State {
  const factory {{feature_name.pascalCase()}}State.initial() = {{feature_name.pascalCase()}}Initial;
  const factory {{feature_name.pascalCase()}}State.loading() = {{feature_name.pascalCase()}}Loading;
  const factory {{feature_name.pascalCase()}}State.loaded(
    List<{{feature_name.pascalCase()}}Entity> items,
  ) = {{feature_name.pascalCase()}}Loaded;
  const factory {{feature_name.pascalCase()}}State.error(String message) =
      {{feature_name.pascalCase()}}Error;
}
